/**
 * 自动生成编码规则配置
 */

// 编码规则配置 - 集中管理所有编码类型
const codeRules = {
  // 用户编码规则
  USER_CODE: {
    prefix: 'U',
    pattern: 'YYYYMMDD', // 日期格式
    sequenceLength: 4, // 序列号长度
    table: 'user', // 对应的数据表
    field: 'code' // 对应的字段
  },
  
  // 部门编码规则
  DEPARTMENT_CODE: {
    prefix: 'D',
    pattern: 'YYYYMMDD',
    sequenceLength: 4,
    table: 'department',
    field: 'code'
  },
  
  // 角色编码规则
  ROLE_CODE: {
    prefix: 'R',
    pattern: 'YYYYMMDD',
    sequenceLength: 4,
    table: 'role',
    field: 'code'
  },

  // 菜单编码规则（用于自动生成的code字段）
  MENU_CODE: {
    prefix: 'M',
    pattern: 'YYYYMMDD',
    sequenceLength: 4,
    table: 'menu',
    field: 'code'
  },
  
  // 权限编码规则（用于自动生成的code字段）
  PERMISSION_CODE: {
    prefix: 'P',
    pattern: 'YYYYMMDD',
    sequenceLength: 4,
    table: 'permission',
    field: 'code'
  },
  
  // 业务权限标识规则（用于permission_code字段）
  PERMISSION_BUSINESS_CODE: {
    prefix: '', // 业务权限标识通常不使用前缀
    pattern: '', // 不使用日期格式
    sequenceLength: 0, // 不使用序列号
    table: 'permission',
    field: 'permission_code',
    description: '业务权限标识，如 user:create, role:read 等',
    isBusinessCode: true // 标识为业务编码
  }
};

// 直接导出配置对象
module.exports = codeRules;

